package com.ruoyi.advertisement.mapper;

import java.util.List;
import java.util.Map;
import org.apache.ibatis.annotations.Param;

/**
 * 广告统计Mapper接口
 * 
 * @author ruoyi
 */
public interface AdvertisementStatisticsMapper {
    
    /**
     * 获取广告概览统计数据
     * 
     * @param params 查询参数
     * @return 统计信息
     */
    Map<String, Object> getAdvertisementOverview(Map<String, Object> params);
    
    /**
     * 获取广告播放趋势数据
     * 
     * @param params 查询参数
     * @return 趋势数据
     */
    List<Map<String, Object>> getPlayTrendData(Map<String, Object> params);
    
    /**
     * 获取素材播放排名
     * 
     * @param params 查询参数
     * @return 播放排名
     */
    List<Map<String, Object>> getMaterialPlayRank(Map<String, Object> params);
    
    /**
     * 获取转化率统计
     * 
     * @param params 查询参数
     * @return 转化率数据
     */
    Map<String, Object> getConversionRate(Map<String, Object> params);
    
    /**
     * 获取时段播放分析
     * 
     * @param params 查询参数
     * @return 时段分析数据
     */
    List<Map<String, Object>> getHourlyPlayAnalysis(Map<String, Object> params);
    
    /**
     * 更新播放统计
     * 
     * @param params 更新参数
     * @return 更新结果
     */
    int updatePlayStatistics(Map<String, Object> params);
    
    /**
     * 更新点击统计
     * 
     * @param materialId 素材ID
     * @return 更新结果
     */
    int updateClickStatistics(@Param("materialId") Long materialId);
}